home *** CD-ROM | disk | FTP | other *** search
/ PC/CD Gamer UK 129 / CD Gamer Issue 129 (December 2003) (Disc 1).ISO / Addons / Vietcong Map editor / max plugins / scripts / pteroTools / _lod2RollOut.msp < prev    next >
Encoding:
Text File  |  2003-09-12  |  5.9 KB  |  122 lines

  1. rollout Lod2RollOut "LOD2 Adv." rolledUp:true (
  2.     local _name
  3.     local _RollOut
  4.  
  5.     ---------------------------------------------------------------
  6.     -- init GUI
  7.     ---------------------------------------------------------------
  8.     include "$scripts\\pteroTools\\_propGroupUI.ms"
  9.         spinner        spnClipDist    "Clip Dist:"        range:[0, 65535, 0]    type:#float        FieldWidth:50    offset:[45,0]    align:#right    across:2
  10.         checkbutton    btnTpeClip    "Tape"                images:_tpeIcon                        width:18        height:16        align:#right    offset:[-3,0]        toolTip:"Measure Clip Distance ..."    enabled:false
  11.         spinner        spnDolDist    "DOL Dist:"            range:[0, 65535, 0]    type:#float        FieldWidth:50    offset:[45,0]    align:#right    across:2
  12.         checkbutton    btnTpeDol    "Tape"                images:_tpeIcon                        width:18        height:16        align:#right    offset:[-3,0]        toolTip:"Measure DOL Distance ..."        enabled:false
  13.         checkbox    cbxDolAlpha    "DOL No Alpha"        enabled:false                                                        align:#center
  14.  
  15.      ---------------------------------------------------------------
  16.     -- Init RollOut
  17.     ---------------------------------------------------------------
  18.      fn fnKeyNames    = #( "ClipDist", "Dol", "DolNoAlpha" )
  19.      fn fnKeyUI        = #( #( spnClipDist ), #( spnDolDist ), #( cbxDolAlpha ) )
  20.      fn fnKeyDef        = #( #( 0 ), #( 0 ), #( 0 ) )
  21.     fn fnName        = "Lod2"
  22.     fn fnRollOut    = Lod2RollOut
  23.     fn fnInitRollOut = (
  24.         local _name        = fnName()
  25.         local _RollOut    = fnRollOut()
  26.         fnAppendRollOut _RollOut _name
  27.     )
  28.      
  29.      ---------------------------------------------------------------
  30.     -- fnApply()
  31.     ---------------------------------------------------------------
  32.     fn fnApply obj keyIDX read write del acq acqObj def sav = (
  33.         local keyNames    = fnKeyNames()
  34.         local keyUI        = fnKeyUI()
  35.         local keyDef    = fnKeyDef()
  36.         local keyArray    = #()
  37.         
  38.         if del do (                                                                                                ---- DELETE
  39.             fnDeleteProp obj keyNames[keyIDX]
  40.             if keyIDX == 3 do keyUI[3].enabled = false
  41.         )
  42.         
  43.         if sav do                                                                                                 ---- SAVE DEFAULT
  44.             try (
  45.                 if keyIDX <= 2 do keyDef[keyIDX][1] = keyUI[keyIDX][1].value
  46.                 if keyIDX == 3 do keyDef[keyIDX][1] = if keyUI[keyIDX][1].checked then 1 else 0
  47.                 fnSetDefs ( keyNames[keyIDX] as string ) ( keyDef[keyIDX] as string )
  48.                 return true
  49.             ) catch ( print ( "Error: " + _name + ".fnApply() - save" ); return false )
  50.  
  51.         keyArray = if acq then fnReadProp acqObj keyNames[keyIDX] else fnReadProp obj keyNames[keyIDX]            ---- ACQUIRE
  52.         
  53.         if read or acq or del or def do (                                                                        ---- READ
  54.             if ( keyArray[_firstValue] == "" ) or ( keyArray[_firstValue] as string == "undefined" ) or def then 
  55.                 try (
  56.                     if def then keyDef[keyIDX] = fnGetDefs keyNames[keyIDX]
  57.                     if keyIDX <= 2 do keyUI[keyIDX][1].value = keyDef[keyIDX][1]
  58.                     if keyIDX == 3 do keyUI[keyIDX][1].checked = if keyDef[keyIDX][1] == 1 then true else false
  59.                     if keyIDX == 2 do if keyUI[keyIDX][1].value == 0 then (
  60.                         keyUI[keyIDX + 1].checked = false
  61.                         keyUI[keyIDX + 1].enabled = false
  62.                     ) else
  63.                         keyUI[keyIDX + 1].enabled = true
  64.                 ) catch ( print ( "Error: " + _name + ".fnApply() - read - default" ); return false )
  65.             else
  66.                 try (
  67.                     if keyIDX <= 2 do keyUI[keyIDX][1].value = keyArray[_firstValue] as float
  68.                     if keyIDX == 3 do keyUI[keyIDX][1].checked = if keyArray[_firstValue] as integer == 1 then true else false
  69.                     if keyIDX == 2 do if keyUI[keyIDX][1].value == 0 then (
  70.                         keyUI[keyIDX + 1].checked = false
  71.                         keyUI[keyIDX + 1].enabled = false
  72.                     ) else 
  73.                         keyUI[keyIDX + 1].enabled = true
  74.                 ) catch ( print ( "Error: " + _name + ".fnApply() - read - properties" ); return false )
  75.  
  76.             if read or del do return true
  77.         )
  78.  
  79.         if write do                                                                                                ---- WRITE
  80.             try (
  81.                 keyArray[_keyName] = keyNames[keyIDX]
  82.                 if keyIDX <= 2 do if keyUI[keyIDX][1].value == 0            then del = true else keyArray[_firstValue] = keyUI[keyIDX][1].value as string
  83.                 if keyIDX == 3 do if keyUI[keyIDX][1].checked == false        then del = true else keyArray[_firstValue] = "1"
  84.                 if keyIDX == 2 do if keyUI[keyIDX][1].value == 0            then (
  85.                     keyUI[keyIDX + 1].checked = false
  86.                     keyUI[keyIDX + 1].enabled = false
  87.                 ) else 
  88.                     keyUI[keyIDX + 1].enabled = true
  89.                 if del then fnDeleteProp obj keyNames[keyIDX] else fnWriteProp obj keyArray
  90.                 if keyIDX == 2 and del do fnDeleteProp obj keyNames[3]
  91.                 
  92.                 return true
  93.             ) catch ( print ( "Error: " + _name + ".fnApply() - write" ); return false )
  94.     )
  95.  
  96.      ---------------------------------------------------------------
  97.     -- fnUpdate()
  98.     ---------------------------------------------------------------
  99.     fn fnUpdate keyIDX:1 read:false write:false del:false acq:false acqObj:undefined def:false sav:false = (
  100.         if not write do write = btnAuto.checked
  101.         for obj in selection do fnApply obj keyIDX read write del acq acqObj def sav
  102.     )
  103.  
  104.     ---------------------------------------------------------------
  105.     -- Event Handler
  106.     ---------------------------------------------------------------
  107.     on spnClipDist        changed value    do ( fnUpdate keyIDX:1; fnGetPropsToShow(); fnPrintLabel() )
  108.     on spnDolDist        changed value    do ( fnUpdate keyIDX:2; fnGetPropsToShow(); fnPrintLabel() )
  109.     on cbxDolAlpha        changed state    do ( fnUpdate keyIDX:3; fnGetPropsToShow(); fnPrintLabel() )
  110.     on btnAcq            changed state    do ( fnAcquire _RollOut; fnGetPropsToShow(); fnPrintLabel() )
  111.     on btnSet            pressed            do ( for n = 1 to (fnKeyNames()).count do fnUpdate keyIDX:n write:true; fnGetPropsToShow(); fnPrintLabel() )
  112.     on btnDef            pressed            do ( for n = 1 to (fnKeyNames()).count do fnUpdate keyIDX:n def:true; fnGetPropsToShow(); fnPrintLabel() )
  113.     on btnSav            pressed            do ( for n = 1 to (fnKeyNames()).count do fnUpdate keyIDX:n sav:true; fnGetPropsToShow(); fnPrintLabel() )
  114.     on btnDel            pressed            do ( for n = 1 to (fnKeyNames()).count do fnUpdate keyIDX:n del:true; fnGetPropsToShow(); fnPrintLabel() )
  115.     on Lod2RollOut        open            do (
  116.         _RollOut    = fnRollOut()
  117.         _name        = fnName()
  118.         fnOpenRollOut _RollOut
  119.     )
  120.     on Lod2RollOut        close            do fnCloseRollOut _RollOut
  121. )
  122.